/*=========================================================================

 =========================================================================*/
// .NAME vtkBuildGeneralPolyData - resample points on a line
// .SECTION Description

#ifndef __vtkBuildGeneralPolyData_h
#define __vtkBuildGeneralPolyData_h

#include "vtkPolyDataAlgorithm.h"

class vtkIdList;
class vtkPoints;
class vtkPolyData;
class vtkEdgeTable;

#define VTK_RULED_MODE_RESAMPLE 0
#define VTK_RULED_MODE_POINT_WALK 1

class VTK_EXPORT vtkBuildGeneralPolyData : public vtkPolyDataAlgorithm
{
public:
  vtkTypeRevisionMacro(vtkBuildGeneralPolyData,vtkPolyDataAlgorithm);
  void PrintSelf(ostream& os, vtkIndent indent);

  // Description:
  // Construct object with OnRatio=1, Offset=0. DistanceFactor=3.0,
  // CloseSurface off, and PassLines off.
  static vtkBuildGeneralPolyData *New();

  
protected:
  vtkBuildGeneralPolyData();
  ~vtkBuildGeneralPolyData();

  // Usual data generation method
  int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);

  vtkEdgeTable *EdgeTable;  

private:
  vtkBuildGeneralPolyData(const vtkBuildGeneralPolyData&);  // Not implemented.
  void operator=(const vtkBuildGeneralPolyData&);  // Not implemented.
};

#endif
